/**
 * @description: 分类管理模块相关的接口类型定义
 */

/**
 * 定义全部接口返回数据都拥有的 TS 的类型
 */
export interface responseData {
  code: number
  message: string
  ok: boolean
}

/**
 * 定义获取到的分类的 TS 类型
 */
export interface CategoryObj {
  id: number | string
  name: string
  createTime?: string
  updateTime?: string
  category1Id?: number | string
  category2Id?: number | string
}

/**
 * 定义分类接口返回数据的 TS 类型
 */
export interface CategoryResponseData extends responseData {
  data: CategoryObj[]
}

/**
 * 定义获取到的属性值的 TS 类型
 */
export interface AttrValue {
  id?: number | string
  attrId?: number | string
  valueName: string
  createTime?: string
  updateTime?: string
  flag?: boolean // 控制每一个属性值编辑模式与显示模式的切换
}

/**
 * 定义属性值列表的 TS 类型
 */
export type AttrValueList = AttrValue[]

/**
 * 定义获取到的属性的 TS 类型
 */
export interface Attr {
  id?: number | string
  attrName: string
  categoryId: number | string
  categoryLevel: number | string
  createTime?: string
  updateTime?: string
  attrValueList?: AttrValueList
}

/**
 * 定义属性列表的 TS 类型
 */
export type AttrList = Attr[]

/**
 * 定义属性与属性值列表接口返回数据的 TS 类型
 */
export interface AttrResponseData extends responseData {
  data: AttrList
}
